package com.kk.xhr.model.service;

import com.kk.xhr.common.pojo.BinaryEnum;
import com.kk.xhr.model.dto.PageDto;
import com.kk.xhr.model.entity.Role;

import java.util.List;
import java.util.Set;

/**
 * 角色服务接口
 *
 * @author kkmystery
 * @version 1.0 2021/3/9
 * @since 1.0.0
 */
public interface IRoleService {

    /**
     * 根据用户id连接查询拥有的角色
     *
     * @param userId 用户id
     * @return 角色名称列表
     */
    Set<Role> queryRolesByUserId(Long userId);

    /**
     * 查询角色列表
     *
     * @return 角色列表
     */
    PageDto<Role> query();

    boolean modify(Long id, String name, String nameZh, Integer order);

    boolean modifyStatus(Long id, BinaryEnum status);

    Long add(Role role);

    void addUserRole(Long userId, List<Long> roleIds);

    void deleteUserRole(Long userId);

    void deleteLeaderRole(Long userId);
}
